#ifndef AUDIO_ENCODER_H
#define AUDIO_ENCODER_H

#include <freertos/FreeRTOS.h>
#include <freertos/ringbuf.h>

typedef struct audio_encoder audio_encoder_t;

/**
 * @brief 创建编码器实例
 * 
 * @return audio_encoder_t* 编码器实例指针
 */
audio_encoder_t *audio_encoder_create(void);

/**
 * @brief 开启编码任务
 * 
 * @param audio_encoder 编码器实例 
 */
void audio_encoder_start(audio_encoder_t *audio_encoder);

/**
 * @brief 设置编码器的输入ringbuf
 * 
 * @param audio_encoder 编码器实例
 * @param buf 输入的ringbuf
 */
void audio_encoder_set_input_buffer(audio_encoder_t *audio_encoder, RingbufHandle_t buf);

/**
 * @brief 设置编码器的输出ringbuf
 * 
 * @param audio_encoder 编码器实例
 * @param buf 输出的ringbuf
 */
void audio_encoder_set_output_buffer(audio_encoder_t *audio_encoder, RingbufHandle_t buf);

#endif